Item1-视C++为一个语言联邦
Item 1: 视C++为一个语言联邦
C++是个多重范型编程语言:
- 过程形式(procedural)
- 面向对象形式(object-oriented)
- 函数形式(functional)
- 泛型形式(generic)
- 元编程形式(metaprogramming)
C++拥有多种特性,可视作多种语言的组合,为了理解C++必须认识其主要的次语言:
- C语言:C++仍是以C为基础的。很多时候C++对问题的解法是较高级的C解法,只是缺乏高效编程部分:没有模板、没有异常、没有重载
- Object-Oriented C++:面向对象设计之古典守则在C++上的最直接实施:classes(包括构造与析构)、封装、继承、多态、virtual函数(动态绑定)。
- Template C++:这是C++的泛型编程部分。template非常强大,带来了新的编程范式:template metaprogramming(TMP,模板元编程)
- STL:STL是一个模板程序库,它对容器、迭代器和算法以及函数对象的规约有极佳的紧密配合与协调,使用STL时需要遵循它的规约。templates与程序库也可以其它想法构建出来。
总结:
- 对C++的规范约束并不是统一的,得分使用情况,比如,对使用面向对象编程和使用泛型编程,其规约并不是一样的
- C++ 高效编程守则视状况而变化,取决于使用C++的哪一部分